# -*- codeing = utf-8 -*-
# @Time : 2021/3/3 20:04
# @Atuthor: 朱朱
# @File: 164正则查找方法.py
# @Software: PyCharm
import re
from collections.abc import Iterable
"""
在Python中的查找匹配方法，常见的有下面四种，他们的用法大致相同，但是匹配出的结果却不同。

match方法(只匹配字符串开头,从头开始)
search方法(扫描整个字符串，找到第一个匹配)
findall方法(扫描整个字符串，找到所有的匹配)
finditer方法(扫描整个字符串，找到所有的匹配，并返回一个可迭代对象)
fullmatch: 完整匹配，字符串需要完全满足正则规则才会有结果，否则就是None
"""
m1 = re.match(r'good','good world good morning')
print(m1)

m2 = re.search(r'good', 'hello world good morning good')
print(m2)
print(re.search(r'x', 'klxdasxadfxidfasxdfidzxds'))

m3 = re.finditer(r'x','klxdasxadfxidfasxdfidzxds')
print(m3)
print(isinstance(m3, Iterable)) # 判断是否为一个可迭代对象

for t in m3:
    print(t)

m4 = re.findall(r'x\d+', 'klx45dasx78adfxidfasx6dfidzxds')
print(m4) # 返回一个列表

m5 = re.fullmatch(r'hello world','hello world')
print(m5)

m6 = re.fullmatch(r'h.*d', 'hoirjegoriejgd') # 从h开始,以d结尾
print(m6)